// 负责和首页进行交互
var Movie = require('../models/movie')
var Category = require('../models/category')

exports.index = function (req, res) {
    // 再首页中拿到是否登录的状态
    // 对所有的分类进行遍历
    Category
        .find({})
        .populate({path: 'movies', options: {limit: 5}}) // 限制返回5条数据
        .exec(function (err, categories) {
            if (err) {
                console.log(err)
            }
            res.render('index', {
                title: 'imooc 首页',
                categories: categories
            })
        })
}

exports.search = function (req, res) {
    var catId = req.query.cat
    var page = parseInt(req.query.p, 10) || 0
    var count = 2 // 每页显示多少条数据
    var index = page * count
    var q = req.query.q  // 搜索框
    if (catId) { // 搜索分类
        // 再首页中拿到是否登录的状态
        // 对所有的分类进行遍历
        Category
            .find({_id: catId})
            // .populate({path: 'movies', options: {limit: 2, skip: index}}) // 限制返回5条数据
            .populate({path: 'movies'}) // 不用 options 分页，因为 limit 是对的，skip 是有问题的  拿到当前分类下的所有电影
            .exec(function (err, categories) {
                if (err) {
                    console.log(err)
                }
                var category = categories[0] || {}
                var movies = category.movies || []
                var results = movies.slice(index, index + count)
                res.render('results', {
                    title: 'imooc 结果列表页面',
                    keyword: category.name,
                    movies: results,
                    currentPage: (page + 1),
                    query: 'cat=' + catId,
                    totalPage: Math.ceil(movies.length / count) // 向上舍入
                })
            })
    } else {
        Movie
            .find({title: new RegExp(q + '.*', 'i')})
            .exec(function (err, movies) {
                if (err) {
                    console.log(err)
                }
                var results = movies.slice(index, index + count)
                res.render('results', {
                    title: 'imooc 结果列表页面',
                    keyword: q,
                    movies: results,
                    currentPage: (page + 1),
                    query: 'q=' + q,
                    totalPage: Math.ceil(movies.length / count) // 向上舍入
                })
            })
    }
}